package com.sc.nft.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sc.nft.dao.SaasTaskTemplateDao;
import com.sc.nft.entity.SaasTaskTemplate;
import com.sc.nft.entity.dto.MerchantAvailabilityDTO;
import com.sc.nft.entity.vo.SaasTaskTemplatePageVO;
import com.sc.nft.enums.SaasTaskStatusEnum;
import com.sc.nft.service.SaasTaskTemplateService;
import com.sc.nft.sup.PageRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**
 * 任务基础表(SaasTaskTemplate)表服务实现类
 *
 * @author 王伟成
 * @since 2024-01-12 15:47:06
 */
@Slf4j
@RequiredArgsConstructor
@Service
public class SaasTaskTemplateServiceImpl implements SaasTaskTemplateService {

    private final SaasTaskTemplateDao saasTaskTemplateDao;
    @Override
    public IPage<SaasTaskTemplatePageVO> page(PageRequest pageRequest) {
        return saasTaskTemplateDao.isStart(pageRequest.toMp());
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void onOff(Long id) {
        SaasTaskTemplate saasTaskTemplate = saasTaskTemplateDao.getById(id);
        if (BeanUtil.isEmpty(saasTaskTemplate)) {
            throw new RuntimeException("模板不存在");
        }
        // 启动改为未启动,未启动改为启动
        if (saasTaskTemplate.getTaskStatus() == SaasTaskStatusEnum.NOT_STARTED) {
            saasTaskTemplate.setTaskStatus(SaasTaskStatusEnum.START);
        } else {
            saasTaskTemplate.setTaskStatus(SaasTaskStatusEnum.NOT_STARTED);
        }
        saasTaskTemplate.updateById();
    }
    @Override
    public void merchantAvailability(MerchantAvailabilityDTO merchantAvailabilityDTO) {
        saasTaskTemplateDao.merchantAvailability(merchantAvailabilityDTO);
    }
}
